﻿using GDM.Hogar.Entidades;
using GDM.Hogar.Managers.Contratos;
using GDM.Hogar.Repositorios.Contratos;
using System;
using System.Collections.Generic;

namespace GDM.Hogar.Managers
{
    public class ActividadManager : IActividadManager
    {
        private readonly IActividadRepositorio _actividadRepositorio;

        public ActividadManager(IActividadRepositorio actividadRepositorio)
        {
            if (actividadRepositorio == null)
            {
                throw new ArgumentNullException("actividadRepositorio");
            }
            _actividadRepositorio = actividadRepositorio;
        }

        public void ActivarActividad(int actividadId, bool activo)
        {
            _actividadRepositorio.ActivarActividad(actividadId, activo);
        }

        public void ActualizarActividad(string actividadHorarios)
        {
            _actividadRepositorio.ActualizarActividad(actividadHorarios);
        }

        public bool ExisteActividad(string nombre)
        {
            var actividad = _actividadRepositorio.ObtenerActividad(nombre);
            return actividad != null;
        }

        public void GuardarActividad(string actividadHorarios)
        {
            _actividadRepositorio.GuardarActividad(actividadHorarios);
        }

        public Actividad ObtenerActividad(int actividadId)
        {
            return _actividadRepositorio.ObtenerActividad(actividadId);
        }

        public IList<ConsultaActividad> ObtenerActividades()
        {
            return _actividadRepositorio.ObtenerActividades();
        }

        public IList<HorarioActividad> ObtenerHorarios(int actividadId)
        {
            return _actividadRepositorio.ObtenerHorarios(actividadId);
        }

        public IList<ConsultaInscripcion> ObtenerInscripcionTalleres(int integranteId = 0)
        {
            return _actividadRepositorio.ObtenerInscripcionTalleres(integranteId);
        }

        public IList<Actividad> ObtenerTalleres()
        {
            return _actividadRepositorio.ObtenerTalleres();
        }

        public IList<ConsultaInscripcion> ObtenerInscripciones()
        {
            return _actividadRepositorio.ObtenerInscripciones();
        }
    }
}